Skip to content

7.0 Deploy with LangSmith

本章介绍如何使用 LangSmith 部署和监控 LangChain/LangGraph 应用。


为什么选择 LangSmith?

LangSmith 是 LangChain 官方提供的一站式 LLM 应用开发平台,专为 Agent 应用设计:

传统方案LangSmith 方案
需要自行实现状态管理内置持久化状态
需要自行实现检查点自动检查点管理
需要集成多个监控工具一体化可观测性
部署配置复杂一键部署

核心能力

┌─────────────────────────────────────────────────────────┐
│                    LangSmith Platform                    │
├─────────────────────────────────────────────────────────┤
│                                                          │
│   ┌─────────────────┐    ┌─────────────────┐            │
│   │    Deployment   │    │  Observability  │            │
│   │                 │    │                 │            │
│   │  • 一键部署      │    │  • 追踪 Tracing │            │
│   │  • 状态管理      │    │  • 监控 Monitor │            │
│   │  • API 访问      │    │  • 评估 Evaluate│            │
│   │  • 线程管理      │    │  • 告警 Alert   │            │
│   └─────────────────┘    └─────────────────┘            │
│                                                          │
└─────────────────────────────────────────────────────────┘

部署能力

  • 一键部署:从 GitHub 仓库直接部署
  • 持久化状态:自动管理对话状态和检查点
  • 后台执行:支持长时间运行的 Agent 任务
  • 内置 API:提供对话线程、检查点的标准 API

可观测性

  • 追踪(Tracing):记录每个执行步骤的完整信息
  • 调试(Debugging):分析工具调用和 LLM 决策点
  • 评估(Evaluation):创建数据集,评估 Agent 性能
  • 监控(Monitoring):实时追踪延迟、Token、成本

快速开始

1. 注册账户

访问 LangSmith 免费注册。

2. 配置环境

bash
# 启用追踪
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY=<your-api-key>

# 可选:指定项目
export LANGSMITH_PROJECT=my-agent-project

3. 运行应用

无需修改代码,追踪自动启用:

python
from langchain.agents import create_agent

agent = create_agent(
    "gpt-4o",
    tools=[search_tool, calculator_tool]
)

# 自动追踪所有执行步骤
response = agent.invoke({
    "messages": [{"role": "user", "content": "What is 25 * 4?"}]
})

追踪结果自动显示在 LangSmith 控制台。


典型工作流

开发阶段                    生产阶段
─────────────────────────────────────────────────
   │                           │
   ▼                           ▼
┌──────────┐              ┌──────────┐
│ 本地开发  │              │ 部署应用  │
│          │              │          │
│ 启用追踪  │              │ LangSmith│
│ 调试问题  │              │ Platform │
└──────────┘              └──────────┘
   │                           │
   ▼                           ▼
┌──────────┐              ┌──────────┐
│ 创建数据集│              │ 监控运行  │
│          │              │          │
│ 评估性能  │              │ 追踪问题  │
│ 优化 Agent│              │ 设置告警  │
└──────────┘              └──────────┘

本章内容

章节内容核心概念
7.1 Deployment部署一键部署、API 访问、线程管理、自托管
7.2 Observability可观测性追踪、监控、评估、告警、自定义追踪

功能对照表

部署功能 (7.1)

功能说明
GitHub 集成从仓库直接部署
环境变量安全管理 API Keys
对话线程内置线程管理 API
LangGraph SDK客户端访问 API
资源配置Small/Medium/Large
自托管LangServe + Docker

可观测性功能 (7.2)

功能说明
自动追踪无需改代码,自动启用
项目管理按环境/功能/版本分组
标签和元数据自定义注释便于筛选
监控仪表板延迟、Token、成本、错误率
@traceable自定义函数追踪
评估数据集创建测试集评估性能

关键代码示例

部署后访问 Agent

python
from langgraph_sdk import get_client

client = get_client(
    url="your-deployment-url",
    api_key="your-langsmith-api-key"
)

# 创建对话线程
thread = await client.threads.create()

# 流式调用
async for chunk in client.runs.stream(
    thread["thread_id"],
    "agent",
    input={"messages": [{"role": "human", "content": "Hello!"}]},
    stream_mode="updates",
):
    print(chunk.data)

追踪与元数据

python
# 添加标签和元数据便于筛选
response = agent.invoke(
    {"messages": [{"role": "user", "content": "Hello"}]},
    config={
        "tags": ["production", "v1.0"],
        "metadata": {
            "user_id": "user_123",
            "session_id": "session_456"
        }
    }
)

自定义追踪

python
from langsmith import traceable

@traceable
def my_custom_function(input_data):
    """自定义函数也会被追踪"""
    result = process(input_data)
    return result

最佳实践

实践说明
结构化项目命名<team>-<service>-<env>
有意义的标签版本、模型、任务类型
丰富的元数据用户 ID、请求 ID、来源
敏感数据处理对 PII 禁用追踪
环境隔离开发/测试/生产分项目

学习路径

你在这里


┌───────────────────────────────────────────────────┐
│  7.0 Deploy with LangSmith (概述)                  │
└───────────────────────────────────────────────────┘

    ├─────────────────────┬─────────────────────────┤
    ▼                     ▼
┌──────────────┐    ┌──────────────┐
│ 7.1 部署      │    │ 7.2 可观测性  │
│              │    │              │
│ • 一键部署    │    │ • 追踪调试    │
│ • API 访问    │    │ • 监控告警    │
│ • 线程管理    │    │ • 评估测试    │
└──────────────┘    └──────────────┘

准备好了吗?

让我们开始学习如何部署你的 LangChain 应用!

下一节7.1 Deployment - 学习一键部署和 API 访问


上一章6.3 Agent Chat UI

下一节7.1 Deployment

基于 MIT 许可证发布。内容版权归作者所有。